function output = batchvisio(funcnum,pic,obj,ss,ww,adoc,docname,visioname,savedir,param)
%输入参数
%funcnum:操作种类的序号
% pic:visio图这一inlineshape
% obj:visio图的对象
% ss:新开一Visio应用打开对象
% ww:活动窗口ActiveWindow;
% adoc:活动文档;
%param额外参数，根据各case需要而定
%%
switch funcnum
    %%
    case 1% 对word选中区域内每个visio的操作,分别另存为        
        %额外参数输入
        title=param.title;
        saveformat=param.saveformat;
        %
        adoc.SaveAs([savedir,'\',title,saveformat]);
        adoc.Close;
    %%
    case 2% 对word选中区域内每个visio的操作,一起粘贴=        
        %额外参数输入
        i=param.i;
        vsdx1=param.vsdx1;
        oripage=vsdx1.Pages.Item(1);
        distance=param.distance;
        %
        shapenum=ss.Shapes.Count;
        for j=1:shapenum%选中全部元素（ActiveWindow.SelectAll似乎不行）
            tshape=ss.Shapes.Item(j);
            ww.Select(tshape,2);
        end
        Selection=ww.Selection;%调用全选的元素
        Selection.Copy;
        % doc1=Visio.Documents.Open(visioname)
        % doc1.Pages.Count
        % oripage=doc1.Pages.Item(1)
        % oripage.Paste;%默认粘贴位置，可能串行
        oripage.PasteToLocation(0,(i-1)*distance,0);%(x,y,0),其中(x,y)为所有shapes的中心坐标，单位inch
        % shapenum=ss.Shapes.Count;
        % for j=1:shapenum
        % tshape=ss.Shapes.Item(j)
        %     tshape.CellsSRC(1, 3, 0).FormulaU = ['THEMEGUARD(RGB(',num2str(255),',',num2str(0),',',num2str(0),'))'];
        % end
        %%
    case 3% 对word选中区域内每个visio的操作,改颜色       
        shapenum=ss.Shapes.Count;
        for j=1:shapenum
            tshape=ss.Shapes.Item(j);
            tshape.CellsSRC(1, 3, 0).FormulaU = ['THEMEGUARD(RGB(',num2str(255),',',num2str(0),',',num2str(0),'))'];
        end
        %%
    case 4% 对word选中区域内每个visio替换文字
        oriword=param.oriword;
        repword=param.repword;
        %
        shapenum=ss.Shapes.Count;
        for j=1:shapenum
            tshape=ss.Shapes.Item(j);
            textbar=tshape.Characters;
            str=textbar.Text;
            newstr=replace(str,oriword,repword);
            textbar.Text=newstr;
        end
end
output=1;
end